import {app, BrowserWindow, ipcMain} from "electron"
import path from "path";
import url from 'url'

let __filename = url.fileURLToPath(import.meta.url)
let __dirname = path.dirname(__filename)

const renderUrl = process.env.NODE_ENV === 'prod' ? 'https://www.dengruicode.com' : 'http://localhost:6789/start';
//创建窗口
const createWindow = () => {
  const mainWindow = new BrowserWindow({
    width: 1300, //设置窗口宽度(单位:像素)
    height: 750, //设置窗口高度
    icon: "resource/images/code.ico", //设置窗口图标
    autoHideMenuBar: true, //隐藏菜单栏
    webPreferences: { //网页偏好设置
      nodeIntegration: true, //允许在渲染进程中直接使用 Node.js API
      contextIsolation: true, //启用上下文隔 (提高安全性)
      preload: path.resolve(__dirname, "./preload.mjs"), //预加载脚本
    }
    //resizable: false, //禁止调整窗口大小
    //x:0, //x表示窗口左上角的水平坐标(单位:像素)
    //y:0, //y表示窗口左上角的垂直坐标
  })

  mainWindow.loadURL(renderUrl) //加载指定的 url

  //当尝试打开新窗口时, 阻止默认行为, 在当前窗口加载 url
  mainWindow.webContents.setWindowOpenHandler(details => {
    mainWindow.loadURL(details.url)
    return {action: 'deny'} //阻止默认行为
  })
}

//当应用准备就绪后创建窗口
app.whenReady().then(() => {
  createWindow()
})

//定义了一个处理函数, 用于响应名为 sendDataToMain 的异步调用
//当渲染进程通过 sendDataToMain 发起调用时, 处理函数会被触发
ipcMain.handle("sendDataToMain", (e, data) => {
  console.log(data)
  return '我把数据给你了'
})
